package com.shenhaofeng.app.utils.format;

/**
 * 这个帮可以帮助我们实现安全的一些常用类型转换
 * Created by Administrator on 2016/1/5.
 */
public class ConvertUtil {


    public static <T extends Number> String numberToString(T num) {
        return String.valueOf(num);
    }


    /**
     * 安全地把String转换为Int类型
     *
     * @param string       被转换的字符串
     * @param defaultValue 转换异常的默认值
     * @return
     */
    public static int stringToInt(String string, int defaultValue) {
        try {
            return Integer.parseInt(string);
        } catch (NumberFormatException e) {
            return defaultValue;
        }
    }

    /**
     * 安全地把String转换为Int类型，如果转换异常将会返回一个0值
     *
     * @param string 被转换的字符串
     * @return
     */
    public static int stringToInt(String string) {
        return stringToInt(string, 0);
    }


    /**
     * 安全地把String转换成Float类型
     *
     * @param string       被转换的字符串
     * @param defaultValue 默认值
     * @return
     */
    public static float stringToFloat(String string, float defaultValue) {
        try {
            return Float.parseFloat(string);
        } catch (NumberFormatException e) {
            return defaultValue;
        }
    }

    /**
     * 安全地把String转换才Float类型
     *
     * @param string 被转换的字符串
     * @return
     */
    public static float stringToFloat(String string) {
        return stringToFloat(string, 0);
    }


    /**
     * 安全地把String转换成Long类型
     *
     * @param string
     * @param defaultValue
     * @return
     */
    public static long stringToLong(String string, long defaultValue) {
        try {
            return Long.parseLong(string);
        } catch (NumberFormatException e) {
            return defaultValue;
        }
    }


    /**
     * 安全地把String转换成Long类型
     *
     * @param string
     * @return
     */
    public static long stringToLong(String string) {
        return stringToLong(string, 0);
    }


}
